/*
 * @Author: yuanchenxi 836909158@qq.com
 * @Date: 2024-07-16 14:41:51
 * @LastEditors: Wang Shuo wangshuo@sgsimulation.com
 * @LastEditTime: 2024-08-30 10:33:47
 * @FilePath: \SGFEM\DataStructure\FEM\Constraint\include\RTRPLTData.h
 */
#pragma once
#include "DataStructure/Common/DataStructureExport.h"
#include "DataStructure/Common/Real.h"
#include "DataStructure/Input/Element/ElementBase.h"

SG_DATASTRUCTURE_FEM_NAMESPACE_OPEN

/** @brief 定义刚性三角形壳单元
 *
 *
 */
struct DECLSPEC RTRPLTData : public ElementBase
{
    SG::DataStructure::Common::Id m_g[3] = { 0 };  ///< 连接的网格点的节点编号
    SG::DataStructure::Common::I64 m_cNa = 0;  ///< 网格点GA在全局坐标系下的独立自由度，由中间没有嵌入空白的1到6的整数标识
    SG::DataStructure::Common::I64 m_cNb = 0;  ///< 网格点GB在全局坐标系下的独立自由度，由中间没有嵌入空白的1到6的整数标识
    SG::DataStructure::Common::I64 m_cNc = 0;  ///< 网格点GC在全局坐标系下的独立自由度，由中间没有嵌入空白的1到6的整数标识
    SG::DataStructure::Common::I64 m_cMa = 0;  ///< 全局坐标系下独立自由度的组件数，由中间没有嵌入空白的1到6的整数标识，或0或空，默认=0
    SG::DataStructure::Common::I64 m_cMb = 0;  ///< 全局坐标系下独立自由度的组件数，由中间没有嵌入空白的1到6的整数标识，或0或空，默认=0
    SG::DataStructure::Common::I64 m_cMc = 0;  ///< 全局坐标系下独立自由度的组件数，由中间没有嵌入空白的1到6的整数标识，或0或空，默认=0
    SG::DataStructure::Common::Real m_alpha    = 0.0;  ///< 热膨胀系数
    SG::DataStructure::Common::Real m_tref     = 0.0;  ///< 用于热载荷计算的参考温度,默认=0.0
    SG::DataStructure::Common::Id   m_domainId = 0;
};

/// @brief 判断两个RTRPLTData是否相等
/// @param a
/// @param b
/// @return
DECLSPEC bool operator== (const RTRPLTData &a, const RTRPLTData &b);

SG_DATASTRUCTURE_FEM_NAMESPACE_CLOSE